#ifndef __BUOLA_GUI_DND_CDROP_H__
#define __BUOLA_GUI_DND_CDROP_H__

#include <buola/gui.h>
#include <buola/gui/dnd/cdropimpl.h>

namespace buola { namespace gui {

class CDrop
{
public:
    CDrop();

    void SetDropTarget(CDropTarget*);

//Target actions
    void Accept();
    void Reject();
    void Finish(bool=true); //We got the data and can send message to src

    void SetValidActions(EDNDActions);

    CDropTarget *Target()   {   return mTarget; }
    bool Accepted()         {   return mAccepted;   }
    
    CDropImpl *Impl()   {   return mImpl;   }

protected:
    CDropImpl *mImpl;

    CDropTarget *mTarget;               //Local target

    bool mAccepted;
    EDNDActions mAcceptedActions;

    friend class CDropTarget;
    friend class CDragSource;
};

/*namespace gui*/ } /*namespace buola*/ }

#endif
